using System; using System.Collections.Generic; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; using Shared; using static HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod; namespace HDL_ON.UI.UI2.FuntionControlView.HisenseTV { public class Send { private static Send sendMethod = null; /// /// 获取对象 /// public static Send Current { get { if (sendMethod == null) { sendMethod = new Send(); } return sendMethod; } } /// ///删除设备 /// /// 设备id /// 成功返回true /// 是否需要提示,默认提示 public void DelDevice(string deviceId, Action action, TipType tipType = TipType.flicker) { Dictionary d = new Dictionary(); d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); d.Add("deviceIds", new List { deviceId });//设备id var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_UnbindDeviceToHome, "删除海信电视"); if (!this.DataChecking(responsePackNew, tipType)) { action?.Invoke(false); } action?.Invoke(true); } /// /// 发送控制命令 /// /// 当前设备 /// 发送控制数据 public void SendControlCommand(Function function, Dictionary dic,Action action) { new System.Threading.Thread(() => { var result = DriverLayer.Control.Ins.SendWriteCommand(function, dic, false, 0); action?.Invoke(result); }) { IsBackground = true }.Start(); } /// ///请求服务器(与住宅有关:例如;homeId) /// /// 发送数据 /// 请求地址(不是绝对地址) /// 标记->描述接口(自定义) /// public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 3) { Log($"{DateTime.Now}->发送->{tag}", api_Url, o.ToString()); var requestJson = HttpUtil.GetSignRequestJson(o); var r = HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); Log($"{DateTime.Now}->回复->{tag}", "", Newtonsoft.Json.JsonConvert.SerializeObject(r)); return r; } /// /// /// 检验数据回复成功或者失败 /// /// 回复数据对象 /// 是否需要提示 /// private bool DataChecking(ResponsePackNew responsePackNew, TipType tipType) { if (responsePackNew.Data == null || responsePackNew.Code != "0" || responsePackNew.Data.ToString() == "") { if (TipType.flicker == tipType) { if (responsePackNew == null) { responsePackNew = new ResponsePackNew { message = "没回复,请确认网络是否正常.", Code = "-1", }; } Application.RunOnMainThread(() => { //new Tip() //{ // CloseTime = 1, // Text = responsePackNew.message + "(" + responsePackNew.Code + ")", // Direction = AMPopTipDirection.None, //}.Show(MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1)); CommonMethod.Current.ShowTip(responsePackNew.message + "(" + responsePackNew.Code + ")", 3); }); } return false; } return true; } /// /// 打印日志 /// /// 打印标记 /// 打印内容 public void Log(string tag, string url, string content) { #if DEBUG Console.WriteLine(tag + $"\r\n{url}\r\n{content}"); #endif } } }